/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.myapp.svc.User;

import com.myapp.Metodos.EncripPassword;
import com.myapp.model.DAO.User.UserDao;
import com.myapp.model.usuaLeng.Usualeng;
import com.myapp.model.usuarios.Usuarios;
import java.security.NoSuchAlgorithmException;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Tarde
 */
public class UserSvc {

    UserDao usrDao = new UserDao();

    public Usuarios newOrUpdateUser(Usuarios usr, Usuarios usr2, boolean newOrUpdate) throws NoSuchAlgorithmException {
        EncripPassword encript = null;
        String password = null;

        if (!usr.getPassword().equals(usr2.getPassword())) {
            encript = new EncripPassword();
            password = usr.getPassword();
            
            password = encript.encripPassword(password);
            usr.setPassword(password);
        }
        /**
         * Llamada al metodo para encriptar el password
         */

        if (newOrUpdate) {// Caso de nuevo usuario.

            Usuarios usrSearch = new Usuarios();
            usrSearch = usrDao.search(usr);
            if (usrSearch == null) {
                usr = usrDao.newOrUpdateUser(usr);
            } else {
                //El usuario ya existe. Enviar el error. 
            }

        } else {//Caso de Update de usuario 

            usr = usrDao.newOrUpdateUser(usr);
        }
        return usr;
    }

    /**
     * Llamada a la funcion search de la clase UserDao
     *
     * @param usr Instancia de Usuario con los valores de login y password para
     * realizar la busqueda
     * @return Devuelve una instancia de Usuario con los datos dle usuario si
     * todo es correcto o vacia si no coincide la busqueda
     */
    public Usuarios login(Usuarios usr) {

        usr = usrDao.login(usr);
        return usr;
    }

    public void logout(Usuarios usr) {
        usrDao.logout(usr);
    }

    public Usuarios search(Usuarios usr) {
        usr = usrDao.search(usr);
        return usr;
    }

    public Usuarios conectar(Usuarios usr) {
        usr = usrDao.conectar(usr);
        return usr;
    }

    public Usuarios buscarPorId(Usuarios usr) {
        usr = usrDao.buscarPorId(usr);
        return usr;
    }

    public void darnivel(Usualeng usuaLeng) {
        usrDao.darnivel(usuaLeng);
    }
    
    public void aumentarDisponCorreg(Usuarios usr){
        usrDao.aumentarDisponCorreg(usr);
    }
}
